Compiler quality means different things to different users. For students and beginners, GNAT intends to be user-friendly, provide lucid error messages, and fast turn-around for small programs. For a software engineer, code quality is paramount, and GNAT can rely on the proven performance of the GCC back-end. For the embedded-systems developer, the existence of cross-compilation tools is critical, and here as well GCC provides the necessary functionality. For the language researcher and the compiler writer, the existence of sources of a full compiler is invaluable.
GNAT has no size limitation, beyond that imposed by the full memory of the host machine. The speed of the system is substantial: on a 66-Mhz i486 machine, the front-end runs at 40,000 lines/min., and the full compiler at 8,000 lines/min. Such a performance is comparable to that of the best commercial compilers, and is likely to improve by a factor of two when various tracing options are removed and full inlining is supported.
To date (Dec. 1993) GNAT is sufficiently complete and robust to compile itself (around 110,000 lines of Ada), compile GNARL, and pass hundreds of ACVC tests. Nevertheless, given the size and complexity of Ada9X, we know that a few person/years are still required to complete the task. In spite of its incompleteness, the GNAT system already has a small but dedicated set of users. The cooperative spirit fostered by the activities of the Free Software Foundation is striking: days after the first release of GNAT, several ports to unexpected machines were reported, and offers were made to the project of important software components: bindings to Mach, to X-windows, implementation of the information systems annex, etc. This synergy within the Ada community is a rewarding byproduct of the GNAT project.